SHL github project: uat_shl

  • training module: shl_tm

  • prediction module: shl_pm

  • simulation module: shl_sm

  • misc module: shl_mm

data feeds:

  • historical bidding price, per second, time series

  • live bidding price, per second, time series

parameter lookup table: python dictionary

  • parm_si (seasonality index per second)

  • parm_month (parameter like alpha, beta, gamma, etc. per month)

[1] Import useful reference packages


In [1]:
import pandas as pd

Initialization


In [2]:
# function to fetch Seasonality-Index
def shl_intra_fetch_si(ccyy_mm, time, shl_data_parm_si):
#     return shl_data_parm_si[(shl_data_parm_si['ccyy-mm'] == '2017-09') & (shl_data_parm_si['time'] == '11:29:00')]
    return shl_data_parm_si[(shl_data_parm_si['ccyy-mm'] == ccyy_mm) & (shl_data_parm_si['time'] == time)].iloc[0]['si']

In [3]:
# function to fetch Dynamic-Increment
def shl_intra_fetch_di(ccyy_mm, shl_data_parm_month):
    return shl_data_parm_month[shl_data_parm_month['ccyy-mm'] == ccyy_mm].iloc[0]['di']

In [4]:
def shl_intra_fetch_previous_n_sec_time_as_str(shl_data_time_field, n):
    return str((pd.to_datetime(shl_data_time_field, format='%H:%M:%S') - pd.Timedelta(seconds=n)).time())

def shl_intra_fetch_future_n_sec_time_as_str(shl_data_time_field, n):
    return str((pd.to_datetime(shl_data_time_field, format='%H:%M:%S') - pd.Timedelta(seconds=-n)).time())

In [5]:
def shl_initialize(in_ccyy_mm='2017-07'):
    print()
    print('+-----------------------------------------------+')
    print('| shl_initialize()                              |')
    print('+-----------------------------------------------+')
    print()
    global shl_data_parm_si
    global shl_data_parm_month
    shl_data_parm_si = pd.read_csv('data/parm_si.csv') 
    shl_data_parm_month = pd.read_csv('data/parm_month.csv') 

    global shl_global_parm_ccyy_mm 
    shl_global_parm_ccyy_mm = in_ccyy_mm
    
    # create default global base price
    global shl_global_parm_base_price
    shl_global_parm_base_price = 10000000

    global shl_global_parm_dynamic_increment
    shl_global_parm_dynamic_increment = shl_intra_fetch_di(shl_global_parm_ccyy_mm, shl_data_parm_month)

    global shl_global_parm_alpha
    shl_global_parm_alpha = shl_data_parm_month[shl_data_parm_month['ccyy-mm'] == shl_global_parm_ccyy_mm].iloc[0]['alpha']
    global shl_global_parm_beta
    shl_global_parm_beta  = shl_data_parm_month[shl_data_parm_month['ccyy-mm'] == shl_global_parm_ccyy_mm].iloc[0]['beta']
    global shl_global_parm_gamma
    shl_global_parm_gamma = shl_data_parm_month[shl_data_parm_month['ccyy-mm'] == shl_global_parm_ccyy_mm].iloc[0]['gamma']
    global shl_global_parm_sec57_weight
    shl_global_parm_sec57_weight = shl_data_parm_month[shl_data_parm_month['ccyy-mm'] == shl_global_parm_ccyy_mm].iloc[0]['sec57-weight']
    global shl_global_parm_month_weight
    shl_global_parm_month_weight = shl_data_parm_month[shl_data_parm_month['ccyy-mm'] == shl_global_parm_ccyy_mm].iloc[0]['month-weight']
    global shl_global_parm_short_weight
    shl_global_parm_short_weight = shl_data_parm_month[shl_data_parm_month['ccyy-mm'] == shl_global_parm_ccyy_mm].iloc[0]['short-weight']

    # default = 0
    global shl_global_parm_short_weight_ratio
    shl_global_parm_short_weight_ratio = 0
    
    # create default average error between 46~50 seconds:
    global shl_global_parm_short_weight_misc
    shl_global_parm_short_weight_misc = 0

    
    print('shl_global_parm_ccyy_mm           : %s' % shl_global_parm_ccyy_mm)
    print('-------------------------------------------------')
    print('shl_global_parm_alpha             : %0.15f' % shl_global_parm_alpha) # used in forecasting
    print('shl_global_parm_beta              : %0.15f' % shl_global_parm_beta)  # used in forecasting
    print('shl_global_parm_gamma             : %0.15f' % shl_global_parm_gamma) # used in forecasting
    print('shl_global_parm_short_weight      : %f' % shl_global_parm_short_weight) # used in forecasting
    print('shl_global_parm_short_weight_ratio: %f' % shl_global_parm_short_weight) # used in forecasting
    print('shl_global_parm_sec57_weight      : %f' % shl_global_parm_sec57_weight) # used in training a model
    print('shl_global_parm_month_weight      : %f' % shl_global_parm_month_weight) # used in training a model
    print('shl_global_parm_dynamic_increment : %d' % shl_global_parm_dynamic_increment)
    print('-------------------------------------------------')

#     plt.figure(figsize=(6,3)) # plot seasonality index
#     plt.plot(shl_data_parm_si[(shl_data_parm_si['ccyy-mm'] == shl_global_parm_ccyy_mm)]['si'])
    
    global shl_data_pm_1_step
    shl_data_pm_1_step = pd.DataFrame() # initialize dataframe of prediction results
    print()
    print('prediction results dataframe: shl_data_pm_1_step')
    print(shl_data_pm_1_step)

    global shl_data_pm_k_step
    shl_data_pm_k_step = pd.DataFrame() # initialize dataframe of prediction results
    print()
    print('prediction results dataframe: shl_data_pm_k_step')
    print(shl_data_pm_k_step)

In [6]:
# shl_initialize('2017-06')

shl_predict_price(in_current_time, in_current_price, in_k_sec) # return k-seconrds Predicted Prices, in a list format

shl_predict_set_price(in_current_time, in_current_price, in_k_sec) # return k-second Predicted Price + Dynamic Increment, in a list format

call k times of shl_predict_price()

shl_data_pm_1_step_itr = pd.DataFrame() # initialize prediction dataframe at 11:29:00


In [7]:
# (shl_data_pm_1_step['f_1_step_pred_price_inc'].shift(1)[46:50] - shl_data_pm_1_step['f_current_price4pm'][46:50]).sum()

In [8]:
# (shl_data_pm_k_step['f_1_step_pred_price_inc'].shift(1)[46:50] - shl_data_pm_k_step['f_current_price4pm'][46:50]).sum()

In [ ]:


In [9]:
def shl_predict_price_1_step(in_current_time, in_current_price):
# 11:29:00~11:29:50

    global shl_data_pm_k_step
    
    global shl_global_parm_short_weight_misc
    if in_current_time < '11:29:50': shl_global_parm_short_weight_misc = 0
    
    global shl_global_parm_short_weight_ratio
    
    global shl_global_parm_base_price 


    print()
    print('+-----------------------------------------------+')
    print('| shl_predict_price()                           |')
    print('+-----------------------------------------------+')
    print()
    print('current_ccyy_mm   : %s' % shl_global_parm_ccyy_mm) # str, format: ccyy-mm
    print('in_current_time   : %s' % in_current_time) # str, format: hh:mm:ss
    print('in_current_price  : %d' % in_current_price) # number, format: integer
    print('-------------------------------------------------')

    
    # capture & calculate 11:29:00 bid price - 1 as base price
    if in_current_time == '11:29:00':
        shl_global_parm_base_price = in_current_price -1 
        print('*INFO* At time [ %s ] Set shl_global_parm_base_price : %d ' % (in_current_time, shl_global_parm_base_price)) # Debug
        
    f_current_datetime = shl_global_parm_ccyy_mm + ' ' + in_current_time
    print('*INFO* f_current_datetime   : %s ' %  f_current_datetime)

    # get Seasonality-Index, for current second
    f_current_si = shl_intra_fetch_si(shl_global_parm_ccyy_mm, in_current_time, shl_data_parm_si)
    print('*INFO* f_current_si         : %0.10f ' %  f_current_si) # Debug
    
    # get Seasonality-Index, for current second + 1
    f_1_step_time = shl_intra_fetch_future_n_sec_time_as_str(in_current_time, 1)
    f_1_step_si = shl_intra_fetch_si(shl_global_parm_ccyy_mm, f_1_step_time, shl_data_parm_si)
    print('*INFO* f_1_step_si         : %0.10f ' %  f_1_step_si) # Debug
    
    # calculate price increment: f_current_price4pm
    f_current_price4pm = in_current_price -  shl_global_parm_base_price
    print('*INFO* f_current_price4pm   : %d ' % f_current_price4pm) # Debug
    
    # calculate seasonality adjusted price increment: f_current_price4pmsi
    f_current_price4pmsi = f_current_price4pm / f_current_si
    print('*INFO* f_current_price4pmsi : %0.10f ' % f_current_price4pmsi) # Debug
    

    if in_current_time == '11:29:00':
#         shl_data_pm_k_step_itr = pd.DataFrame() # initialize prediction dataframe at 11:29:00
        print('---- call prediction function shl_pm ---- %s' % in_current_time)
        f_1_step_pred_les_level = f_current_price4pmsi # special handling for 11:29:00
        f_1_step_pred_les_trend = 0 # special handling for 11:29:00
        f_1_step_pred_les = f_1_step_pred_les_level + f_1_step_pred_les_trend
        f_1_step_pred_adj_misc = 0
        f_1_step_pred_price_inc = (f_1_step_pred_les + f_1_step_pred_adj_misc) * f_1_step_si
        f_1_step_pred_price = f_1_step_pred_price_inc + shl_global_parm_base_price
        f_1_step_pred_price_rounded = round(f_1_step_pred_price/100, 0) * 100
        f_1_step_pred_set_price_rounded = f_1_step_pred_price_rounded + shl_global_parm_dynamic_increment
        
    else:
        print('---- call prediction function shl_pm ---- %s' % in_current_time)
        
#       function to get average forecast error between 46~50 seconds: mean(f_current_step_error)
        if in_current_time == '11:29:50':
            sec50_pred_price_inc = shl_data_pm_k_step[(shl_data_pm_k_step['ccyy-mm'] == shl_global_parm_ccyy_mm) \
                                                & (shl_data_pm_k_step['f_1_step_time'] ==in_current_time)].iloc[0]['f_1_step_pred_price_inc']
            sec50_error    = sec50_pred_price_inc - f_current_price4pm
            sec46_49_error = (shl_data_pm_k_step['f_1_step_pred_price_inc'].shift(1)[46:50] - shl_data_pm_k_step['f_current_price4pm'][46:50]).sum()
            print('*INFO* sec50_error    : %f' % sec50_error)
            print('*INFO* sec46_49_error : %f' % sec46_49_error)
            
            shl_global_parm_short_weight_misc = (sec50_error + sec46_49_error) / 5
            print('*INFO* shl_global_parm_short_weight_misc  : %f' % shl_global_parm_short_weight_misc)
            
#       ----------------------------------------------------------------------------------------------------        
#       if in_current_time == '11:29:50':
            shl_global_parm_short_weight_ratio = 1
            print('*INFO* shl_global_parm_short_weight_ratio : %d' % shl_global_parm_short_weight_ratio)
        if in_current_time == '11:29:51':
            shl_global_parm_short_weight_ratio = 2
            print('*INFO* shl_global_parm_short_weight_ratio : %d' % shl_global_parm_short_weight_ratio)        
        if in_current_time == '11:29:52':
            shl_global_parm_short_weight_ratio = 3
            print('*INFO* shl_global_parm_short_weight_ratio : %d' % shl_global_parm_short_weight_ratio)        
        if in_current_time == '11:29:53':
            shl_global_parm_short_weight_ratio = 4
            print('*INFO* shl_global_parm_short_weight_ratio : %d' % shl_global_parm_short_weight_ratio)        
        if in_current_time == '11:29:54':
            shl_global_parm_short_weight_ratio = 5
            print('*INFO* shl_global_parm_short_weight_ratio : %d' % shl_global_parm_short_weight_ratio)        
        if in_current_time == '11:29:55':
            shl_global_parm_short_weight_ratio = 6
            print('*INFO* shl_global_parm_short_weight_ratio : %d' % shl_global_parm_short_weight_ratio)        
        if in_current_time == '11:29:56':
            shl_global_parm_short_weight_ratio = 7
            print('*INFO* shl_global_parm_short_weight_ratio : %d' % shl_global_parm_short_weight_ratio)        
        if in_current_time == '11:29:57':
            shl_global_parm_short_weight_ratio = 8
            print('*INFO* shl_global_parm_short_weight_ratio : %d' % shl_global_parm_short_weight_ratio)        
        if in_current_time == '11:29:58':
            shl_global_parm_short_weight_ratio = 9
            print('*INFO* shl_global_parm_short_weight_ratio : %d' % shl_global_parm_short_weight_ratio)        
        if in_current_time == '11:29:59':
            shl_global_parm_short_weight_ratio = 10
            print('*INFO* shl_global_parm_short_weight_ratio : %d' % shl_global_parm_short_weight_ratio)        
        if in_current_time == '11:29:60':
            shl_global_parm_short_weight_ratio = 11
            print('*INFO* shl_global_parm_short_weight_ratio : %d' % shl_global_parm_short_weight_ratio)        
#       ----------------------------------------------------------------------------------------------------        
        
        previous_pred_les_level = shl_data_pm_k_step[(shl_data_pm_k_step['ccyy-mm'] == shl_global_parm_ccyy_mm) \
                                            & (shl_data_pm_k_step['f_1_step_time'] ==in_current_time)].iloc[0]['f_1_step_pred_les_level']
        print('     previous_pred_les_level : %f' % previous_pred_les_level)
        
        previous_pred_les_trend = shl_data_pm_k_step[(shl_data_pm_k_step['ccyy-mm'] == shl_global_parm_ccyy_mm) \
                                            & (shl_data_pm_k_step['f_1_step_time'] ==in_current_time)].iloc[0]['f_1_step_pred_les_trend']
        print('     previous_pred_les_trend : %f' % previous_pred_les_trend)

            
        f_1_step_pred_les_level = shl_global_parm_alpha * f_current_price4pmsi \
                                    + (1 - shl_global_parm_alpha) * (previous_pred_les_level + previous_pred_les_trend)
        print('     f_1_step_pred_les_level  : %f' % f_1_step_pred_les_level)
        f_1_step_pred_les_trend = shl_global_parm_beta * (f_1_step_pred_les_level - previous_pred_les_level) \
                                    + (1 - shl_global_parm_beta) * previous_pred_les_trend
        print('     f_1_step_pred_les_trend  : %f' % f_1_step_pred_les_trend)
        
        f_1_step_pred_les = f_1_step_pred_les_level + f_1_step_pred_les_trend
        f_1_step_pred_adj_misc = shl_global_parm_short_weight_misc * shl_global_parm_short_weight * shl_global_parm_short_weight_ratio * shl_global_parm_gamma
        print('     les + misc               : %f' % (f_1_step_pred_adj_misc+f_1_step_pred_les))
        f_1_step_pred_price_inc = (f_1_step_pred_les + f_1_step_pred_adj_misc) * f_1_step_si
        print('     f_1_step_pred_price_inc  : %f' % f_1_step_pred_price_inc)
        print('     f_1_step_si              : %f' % f_1_step_si)
        f_1_step_pred_price = f_1_step_pred_price_inc + shl_global_parm_base_price
        f_1_step_pred_price_rounded = round(f_1_step_pred_price/100, 0) * 100
        f_1_step_pred_set_price_rounded = f_1_step_pred_price_rounded + shl_global_parm_dynamic_increment
   
        
    # write results to shl_pm dataframe
            
    shl_data_pm_k_step_itr_dict = {
                         'ccyy-mm' : shl_global_parm_ccyy_mm
                        ,'f_current_datetime' : f_current_datetime
                        ,'f_current_bid' : in_current_price
                        ,'f_current_price4pm' : f_current_price4pm
                        ,'f_current_si' : f_current_si
                        ,'f_current_price4pmsi' :  f_current_price4pmsi
                        ,'f_1_step_time' : f_1_step_time # predicted values/price for next second: in_current_time + 1 second
                        ,'f_1_step_si' : f_1_step_si
                        ,'f_1_step_pred_les_level' : f_1_step_pred_les_level
                        ,'f_1_step_pred_les_trend' : f_1_step_pred_les_trend
                        ,'f_1_step_pred_les' : f_1_step_pred_les
                        ,'f_1_step_pred_adj_misc' : f_1_step_pred_adj_misc
                        ,'f_1_step_pred_price_inc' : f_1_step_pred_price_inc
                        ,'f_1_step_pred_price' : f_1_step_pred_price
                        ,'f_1_step_pred_price_rounded' : f_1_step_pred_price_rounded
                        ,'f_1_step_pred_set_price_rounded' : f_1_step_pred_set_price_rounded
                        }
#     shl_data_pm_k_step_itr =  shl_data_pm_k_step_itr.append(shl_data_pm_k_step_itr_dict, ignore_index=True)
#     shl_data_pm_k_step     =  shl_data_pm_k_step.append(shl_data_pm_k_step_itr_dict, ignore_index=True)
    return shl_data_pm_k_step_itr_dict

In [10]:
def shl_predict_price_k_step(in_current_time, in_current_price, in_k_seconds=1):
    global shl_data_pm_1_step
    
    global shl_data_pm_k_step
    shl_data_pm_k_step = shl_data_pm_1_step.copy() 
    
    shl_data_pm_itr_dict = {}
    
    for k in range(1,in_k_seconds+1):
        print()
        print('==>> Forecasting next %3d second/step... ' % k)
        if k == 1:
            print('     procesing current second/step k : ', k)
            input_price = in_current_price
            input_time  = in_current_time
            shl_data_pm_itr_dict = shl_predict_price_1_step(input_time, input_price)
            shl_data_pm_1_step     =  shl_data_pm_1_step.append(shl_data_pm_itr_dict, ignore_index=True)
        else:
            print('     procesing current second/step k : ', k)
            input_price = shl_data_pm_itr_dict['f_1_step_pred_price']
            input_time  = shl_data_pm_itr_dict['f_1_step_time']
            shl_data_pm_itr_dict = shl_predict_price_1_step(input_time, input_price)

        shl_data_pm_k_step     =  shl_data_pm_k_step.append(shl_data_pm_itr_dict, ignore_index=True)

In [ ]:


In [11]:
# shl_data_pm_1_step['f_current_price4pm'][46:50]

In [12]:
# shl_data_pm_1_step['f_1_step_pred_price_inc'].shift(1)[46:50]

In [13]:
# shl_data_pm_1_step['f_1_step_pred_price_inc'].shift(1)[46:50] - shl_data_pm_1_step['f_current_price4pm'][46:50]

In [ ]:


In [ ]:

shl_sm


In [14]:
shl_data_history_ts_process = pd.read_csv('data/history_ts.csv') 
shl_data_history_ts_process.tail()


Out[14]:
ccyy-mm time bid-price ref-price
1886 2017-07 11:29:56 92100 89800
1887 2017-07 11:29:57 92100 89800
1888 2017-07 11:29:58 92100 89800
1889 2017-07 11:29:59 92200 89800
1890 2017-07 11:30:00 92200 89800

shl_sm Simulation Module Parm:


In [15]:
# which month to predict?
# shl_global_parm_ccyy_mm = '2017-04'
# shl_global_parm_ccyy_mm_offset = 1647

# shl_global_parm_ccyy_mm = '2017-05'
# shl_global_parm_ccyy_mm_offset = 1708

shl_global_parm_ccyy_mm = '2017-06'
shl_global_parm_ccyy_mm_offset = 1769

# shl_global_parm_ccyy_mm = '2017-07'
# shl_global_parm_ccyy_mm_offset = 1830

In [16]:
shl_initialize(shl_global_parm_ccyy_mm)


+-----------------------------------------------+
| shl_initialize()                              |
+-----------------------------------------------+

shl_global_parm_ccyy_mm           : 2017-06
-------------------------------------------------
shl_global_parm_alpha             : 0.777107313458705
shl_global_parm_beta              : 0.179154416550987
shl_global_parm_gamma             : 0.120598828573260
shl_global_parm_short_weight      : 0.125000
shl_global_parm_short_weight_ratio: 0.125000
shl_global_parm_sec57_weight      : 0.500000
shl_global_parm_month_weight      : 0.900000
shl_global_parm_dynamic_increment : 300
-------------------------------------------------

prediction results dataframe: shl_data_pm_1_step
Empty DataFrame
Columns: []
Index: []

prediction results dataframe: shl_data_pm_k_step
Empty DataFrame
Columns: []
Index: []

In [19]:
# shl_data_pm_1_step

In [20]:
# shl_data_pm_k_step

In [21]:
# shl_data_pm_1_step = pd.DataFrame() # initialize dataframe of prediction results
# shl_data_pm_k_step = pd.DataFrame()

In [22]:
# Upon receiving 11:29:00 second price, to predict till 11:29:49 <- one-step forward price forecasting

shl_data_pm_1_step = pd.DataFrame() # initialize dataframe of prediction results

for i in range(shl_global_parm_ccyy_mm_offset, shl_global_parm_ccyy_mm_offset+50): # use July 2015 data as simulatino
    print('\n<<<< Record No.: %5d >>>>' % i)
    print(shl_data_history_ts_process['ccyy-mm'][i]) # format: ccyy-mm
    print(shl_data_history_ts_process['time'][i]) # format: hh:mm:ss
    print(shl_data_history_ts_process['bid-price'][i]) # format: integer
    shl_predict_price_k_step(shl_data_history_ts_process['time'][i], shl_data_history_ts_process['bid-price'][i],1) # <- one-step forward price forecasting


<<<< Record No.:  1769 >>>>
2017-06
11:29:00
88400

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:00
in_current_price  : 88400
-------------------------------------------------
*INFO* At time [ 11:29:00 ] Set shl_global_parm_base_price : 88399 
*INFO* f_current_datetime   : 2017-06 11:29:00 
*INFO* f_current_si         : 0.0023822130 
*INFO* f_1_step_si         : 0.0148610890 
*INFO* f_current_price4pm   : 1 
*INFO* f_current_price4pmsi : 419.7777444754 
---- call prediction function shl_pm ---- 11:29:00

<<<< Record No.:  1770 >>>>
2017-06
11:29:01
88500

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:01
in_current_price  : 88500
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:01 
*INFO* f_current_si         : 0.0148610890 
*INFO* f_1_step_si         : 0.0237690550 
*INFO* f_current_price4pm   : 101 
*INFO* f_current_price4pmsi : 6796.2717940792 
---- call prediction function shl_pm ---- 11:29:01
     previous_pred_les_level : 419.777744
     previous_pred_les_trend : 0.000000
     f_1_step_pred_les_level  : 5374.997905
     f_1_step_pred_les_trend  : 887.749577
     les + misc               : 6262.747481
     f_1_step_pred_price_inc  : 148.859589
     f_1_step_si              : 0.023769

<<<< Record No.:  1771 >>>>
2017-06
11:29:02
88500

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:02
in_current_price  : 88500
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:02 
*INFO* f_current_si         : 0.0237690550 
*INFO* f_1_step_si         : 0.0309433440 
*INFO* f_current_price4pm   : 101 
*INFO* f_current_price4pmsi : 4249.2223607544 
---- call prediction function shl_pm ---- 11:29:02
     previous_pred_les_level : 5374.997905
     previous_pred_les_trend : 887.749577
     f_1_step_pred_les_level  : 4698.022384
     f_1_step_pred_les_trend  : 607.422165
     les + misc               : 5305.444549
     f_1_step_pred_price_inc  : 164.168196
     f_1_step_si              : 0.030943

<<<< Record No.:  1772 >>>>
2017-06
11:29:03
88500

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:03
in_current_price  : 88500
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:03 
*INFO* f_current_si         : 0.0309433440 
*INFO* f_1_step_si         : 0.0392121080 
*INFO* f_current_price4pm   : 101 
*INFO* f_current_price4pmsi : 3264.0298992895 
---- call prediction function shl_pm ---- 11:29:03
     previous_pred_les_level : 4698.022384
     previous_pred_les_trend : 607.422165
     f_1_step_pred_les_level  : 3719.046295
     f_1_step_pred_les_trend  : 323.211911
     les + misc               : 4042.258206
     f_1_step_pred_price_inc  : 158.505465
     f_1_step_si              : 0.039212

<<<< Record No.:  1773 >>>>
2017-06
11:29:04
88500

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:04
in_current_price  : 88500
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:04 
*INFO* f_current_si         : 0.0392121080 
*INFO* f_1_step_si         : 0.0387689300 
*INFO* f_current_price4pm   : 101 
*INFO* f_current_price4pmsi : 2575.7350255181 
---- call prediction function shl_pm ---- 11:29:04
     previous_pred_les_level : 3719.046295
     previous_pred_les_trend : 323.211911
     f_1_step_pred_les_level  : 2902.612317
     f_1_step_pred_les_trend  : 119.039317
     les + misc               : 3021.651634
     f_1_step_pred_price_inc  : 117.146201
     f_1_step_si              : 0.038769

<<<< Record No.:  1774 >>>>
2017-06
11:29:05
88500

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:05
in_current_price  : 88500
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:05 
*INFO* f_current_si         : 0.0387689300 
*INFO* f_1_step_si         : 0.0757339540 
*INFO* f_current_price4pm   : 101 
*INFO* f_current_price4pmsi : 2605.1789409715 
---- call prediction function shl_pm ---- 11:29:05
     previous_pred_les_level : 2902.612317
     previous_pred_les_trend : 119.039317
     f_1_step_pred_les_level  : 2698.007658
     f_1_step_pred_les_trend  : 61.057069
     les + misc               : 2759.064728
     f_1_step_pred_price_inc  : 208.954881
     f_1_step_si              : 0.075734

<<<< Record No.:  1775 >>>>
2017-06
11:29:06
88500

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:06
in_current_price  : 88500
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:06 
*INFO* f_current_si         : 0.0757339540 
*INFO* f_1_step_si         : 0.0941974490 
*INFO* f_current_price4pm   : 101 
*INFO* f_current_price4pmsi : 1333.6158310181 
---- call prediction function shl_pm ---- 11:29:06
     previous_pred_les_level : 2698.007658
     previous_pred_les_trend : 61.057069
     f_1_step_pred_les_level  : 1651.337965
     f_1_step_pred_les_trend  : -137.397073
     les + misc               : 1513.940893
     f_1_step_pred_price_inc  : 142.609370
     f_1_step_si              : 0.094197

<<<< Record No.:  1776 >>>>
2017-06
11:29:07
88500

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:07
in_current_price  : 88500
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:07 
*INFO* f_current_si         : 0.0941974490 
*INFO* f_1_step_si         : 0.1333751000 
*INFO* f_current_price4pm   : 101 
*INFO* f_current_price4pmsi : 1072.2158728524 
---- call prediction function shl_pm ---- 11:29:07
     previous_pred_les_level : 1651.337965
     previous_pred_les_trend : -137.397073
     f_1_step_pred_les_level  : 1170.673149
     f_1_step_pred_les_trend  : -198.895005
     les + misc               : 971.778144
     f_1_step_pred_price_inc  : 129.611007
     f_1_step_si              : 0.133375

<<<< Record No.:  1777 >>>>
2017-06
11:29:08
88500

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:08
in_current_price  : 88500
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:08 
*INFO* f_current_si         : 0.1333751000 
*INFO* f_1_step_si         : 0.2041837360 
*INFO* f_current_price4pm   : 101 
*INFO* f_current_price4pmsi : 757.2627874318 
---- call prediction function shl_pm ---- 11:29:08
     previous_pred_les_level : 1170.673149
     previous_pred_les_trend : -198.895005
     f_1_step_pred_les_level  : 805.076692
     f_1_step_pred_les_trend  : -228.760306
     les + misc               : 576.316385
     f_1_step_pred_price_inc  : 117.674433
     f_1_step_si              : 0.204184

<<<< Record No.:  1778 >>>>
2017-06
11:29:09
88500

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:09
in_current_price  : 88500
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:09 
*INFO* f_current_si         : 0.2041837360 
*INFO* f_1_step_si         : 0.2321693820 
*INFO* f_current_price4pm   : 101 
*INFO* f_current_price4pmsi : 494.6525221774 
---- call prediction function shl_pm ---- 11:29:09
     previous_pred_les_level : 805.076692
     previous_pred_les_trend : -228.760306
     f_1_step_pred_les_level  : 512.854800
     f_1_step_pred_les_trend  : -240.129730
     les + misc               : 272.725070
     f_1_step_pred_price_inc  : 63.318411
     f_1_step_si              : 0.232169

<<<< Record No.:  1779 >>>>
2017-06
11:29:10
88500

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:10
in_current_price  : 88500
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:10 
*INFO* f_current_si         : 0.2321693820 
*INFO* f_1_step_si         : 0.2946054880 
*INFO* f_current_price4pm   : 101 
*INFO* f_current_price4pmsi : 435.0272164656 
---- call prediction function shl_pm ---- 11:29:10
     previous_pred_les_level : 512.854800
     previous_pred_les_trend : -240.129730
     f_1_step_pred_les_level  : 398.851255
     f_1_step_pred_les_trend  : -217.533667
     les + misc               : 181.317588
     f_1_step_pred_price_inc  : 53.417157
     f_1_step_si              : 0.294605

<<<< Record No.:  1780 >>>>
2017-06
11:29:11
88500

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:11
in_current_price  : 88500
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:11 
*INFO* f_current_si         : 0.2946054880 
*INFO* f_1_step_si         : 0.3488655530 
*INFO* f_current_price4pm   : 101 
*INFO* f_current_price4pmsi : 342.8313596113 
---- call prediction function shl_pm ---- 11:29:11
     previous_pred_les_level : 398.851255
     previous_pred_les_trend : -217.533667
     f_1_step_pred_les_level  : 306.831121
     f_1_step_pred_les_trend  : -195.047363
     les + misc               : 111.783758
     f_1_step_pred_price_inc  : 38.997503
     f_1_step_si              : 0.348866

<<<< Record No.:  1781 >>>>
2017-06
11:29:12
88500

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:12
in_current_price  : 88500
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:12 
*INFO* f_current_si         : 0.3488655530 
*INFO* f_1_step_si         : 0.3571459030 
*INFO* f_current_price4pm   : 101 
*INFO* f_current_price4pmsi : 289.5098101015 
---- call prediction function shl_pm ---- 11:29:12
     previous_pred_les_level : 306.831121
     previous_pred_les_trend : -195.047363
     f_1_step_pred_les_level  : 249.895973
     f_1_step_pred_les_trend  : -170.303950
     les + misc               : 79.592023
     f_1_step_pred_price_inc  : 28.425965
     f_1_step_si              : 0.357146

<<<< Record No.:  1782 >>>>
2017-06
11:29:13
88500

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:13
in_current_price  : 88500
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:13 
*INFO* f_current_si         : 0.3571459030 
*INFO* f_1_step_si         : 0.3775201620 
*INFO* f_current_price4pm   : 101 
*INFO* f_current_price4pmsi : 282.7975881890 
---- call prediction function shl_pm ---- 11:29:13
     previous_pred_les_level : 249.895973
     previous_pred_les_trend : -170.303950
     f_1_step_pred_les_level  : 237.504554
     f_1_step_pred_les_trend  : -142.013222
     les + misc               : 95.491332
     f_1_step_pred_price_inc  : 36.049903
     f_1_step_si              : 0.377520

<<<< Record No.:  1783 >>>>
2017-06
11:29:14
88500

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:14
in_current_price  : 88500
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:14 
*INFO* f_current_si         : 0.3775201620 
*INFO* f_1_step_si         : 0.4092913790 
*INFO* f_current_price4pm   : 101 
*INFO* f_current_price4pmsi : 267.5353800044 
---- call prediction function shl_pm ---- 11:29:14
     previous_pred_les_level : 237.504554
     previous_pred_les_trend : -142.013222
     f_1_step_pred_les_level  : 229.188020
     f_1_step_pred_les_trend  : -118.060870
     les + misc               : 111.127150
     f_1_step_pred_price_inc  : 45.483384
     f_1_step_si              : 0.409291

<<<< Record No.:  1784 >>>>
2017-06
11:29:15
88500

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:15
in_current_price  : 88500
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:15 
*INFO* f_current_si         : 0.4092913790 
*INFO* f_1_step_si         : 0.4206648770 
*INFO* f_current_price4pm   : 101 
*INFO* f_current_price4pmsi : 246.7679633194 
---- call prediction function shl_pm ---- 11:29:15
     previous_pred_les_level : 229.188020
     previous_pred_les_trend : -118.060870
     f_1_step_pred_les_level  : 216.534618
     f_1_step_pred_les_trend  : -99.176657
     les + misc               : 117.357961
     f_1_step_pred_price_inc  : 49.368372
     f_1_step_si              : 0.420665

<<<< Record No.:  1785 >>>>
2017-06
11:29:16
88500

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:16
in_current_price  : 88500
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:16 
*INFO* f_current_si         : 0.4206648770 
*INFO* f_1_step_si         : 0.4638547580 
*INFO* f_current_price4pm   : 101 
*INFO* f_current_price4pmsi : 240.0961086181 
---- call prediction function shl_pm ---- 11:29:16
     previous_pred_les_level : 216.534618
     previous_pred_les_trend : -99.176657
     f_1_step_pred_les_level  : 212.738673
     f_1_step_pred_les_trend  : -82.088781
     les + misc               : 130.649892
     f_1_step_pred_price_inc  : 60.602574
     f_1_step_si              : 0.463855

<<<< Record No.:  1786 >>>>
2017-06
11:29:17
88500

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:17
in_current_price  : 88500
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:17 
*INFO* f_current_si         : 0.4638547580 
*INFO* f_1_step_si         : 0.4951657820 
*INFO* f_current_price4pm   : 101 
*INFO* f_current_price4pmsi : 217.7405712846 
---- call prediction function shl_pm ---- 11:29:17
     previous_pred_les_level : 212.738673
     previous_pred_les_trend : -82.088781
     f_1_step_pred_les_level  : 198.328696
     f_1_step_pred_les_trend  : -69.963824
     les + misc               : 128.364872
     f_1_step_pred_price_inc  : 63.561892
     f_1_step_si              : 0.495166

<<<< Record No.:  1787 >>>>
2017-06
11:29:18
88500

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:18
in_current_price  : 88500
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:18 
*INFO* f_current_si         : 0.4951657820 
*INFO* f_1_step_si         : 0.5080609120 
*INFO* f_current_price4pm   : 101 
*INFO* f_current_price4pmsi : 203.9720911087 
---- call prediction function shl_pm ---- 11:29:18
     previous_pred_les_level : 198.328696
     previous_pred_les_trend : -69.963824
     f_1_step_pred_les_level  : 187.119795
     f_1_step_pred_les_trend  : -59.437620
     les + misc               : 127.682174
     f_1_step_pred_price_inc  : 64.870322
     f_1_step_si              : 0.508061

<<<< Record No.:  1788 >>>>
2017-06
11:29:19
88600

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:19
in_current_price  : 88600
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:19 
*INFO* f_current_si         : 0.5080609120 
*INFO* f_1_step_si         : 0.5316053510 
*INFO* f_current_price4pm   : 201 
*INFO* f_current_price4pmsi : 395.6218540977 
---- call prediction function shl_pm ---- 11:29:19
     previous_pred_les_level : 187.119795
     previous_pred_les_trend : -59.437620
     f_1_step_pred_les_level  : 335.900059
     f_1_step_pred_les_trend  : -22.134467
     les + misc               : 313.765592
     f_1_step_pred_price_inc  : 166.799468
     f_1_step_si              : 0.531605

<<<< Record No.:  1789 >>>>
2017-06
11:29:20
88600

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:20
in_current_price  : 88600
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:20 
*INFO* f_current_si         : 0.5316053510 
*INFO* f_1_step_si         : 0.5724520020 
*INFO* f_current_price4pm   : 201 
*INFO* f_current_price4pmsi : 378.1000315777 
---- call prediction function shl_pm ---- 11:29:20
     previous_pred_les_level : 335.900059
     previous_pred_les_trend : -22.134467
     f_1_step_pred_les_level  : 363.760356
     f_1_step_pred_les_trend  : -13.177684
     les + misc               : 350.582672
     f_1_step_pred_price_inc  : 200.691752
     f_1_step_si              : 0.572452

<<<< Record No.:  1790 >>>>
2017-06
11:29:21
88600

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:21
in_current_price  : 88600
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:21 
*INFO* f_current_si         : 0.5724520020 
*INFO* f_1_step_si         : 0.5843722490 
*INFO* f_current_price4pm   : 201 
*INFO* f_current_price4pmsi : 351.1211408079 
---- call prediction function shl_pm ---- 11:29:21
     previous_pred_les_level : 363.760356
     previous_pred_les_trend : -13.177684
     f_1_step_pred_les_level  : 351.001120
     f_1_step_pred_les_trend  : -13.102717
     les + misc               : 337.898403
     f_1_step_pred_price_inc  : 197.458450
     f_1_step_si              : 0.584372

<<<< Record No.:  1791 >>>>
2017-06
11:29:22
88600

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:22
in_current_price  : 88600
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:22 
*INFO* f_current_si         : 0.5843722490 
*INFO* f_1_step_si         : 0.5966521600 
*INFO* f_current_price4pm   : 201 
*INFO* f_current_price4pmsi : 343.9588384698 
---- call prediction function shl_pm ---- 11:29:22
     previous_pred_les_level : 351.001120
     previous_pred_les_trend : -13.102717
     f_1_step_pred_les_level  : 342.608012
     f_1_step_pred_les_trend  : -12.258970
     les + misc               : 330.349042
     f_1_step_pred_price_inc  : 197.103469
     f_1_step_si              : 0.596652

<<<< Record No.:  1792 >>>>
2017-06
11:29:23
88600

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:23
in_current_price  : 88600
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:23 
*INFO* f_current_si         : 0.5966521600 
*INFO* f_1_step_si         : 0.6276205910 
*INFO* f_current_price4pm   : 201 
*INFO* f_current_price4pmsi : 336.8796988852 
---- call prediction function shl_pm ---- 11:29:23
     previous_pred_les_level : 342.608012
     previous_pred_les_trend : -12.258970
     f_1_step_pred_les_level  : 335.424063
     f_1_step_pred_les_trend  : -11.349757
     les + misc               : 324.074306
     f_1_step_pred_price_inc  : 203.395707
     f_1_step_si              : 0.627621

<<<< Record No.:  1793 >>>>
2017-06
11:29:24
88600

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:24
in_current_price  : 88600
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:24 
*INFO* f_current_si         : 0.6276205910 
*INFO* f_1_step_si         : 0.6615943850 
*INFO* f_current_price4pm   : 201 
*INFO* f_current_price4pmsi : 320.2571790701 
---- call prediction function shl_pm ---- 11:29:24
     previous_pred_les_level : 335.424063
     previous_pred_les_trend : -11.349757
     f_1_step_pred_les_level  : 321.107989
     f_1_step_pred_les_trend  : -11.881186
     les + misc               : 309.226802
     f_1_step_pred_price_inc  : 204.582716
     f_1_step_si              : 0.661594

<<<< Record No.:  1794 >>>>
2017-06
11:29:25
88700

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:25
in_current_price  : 88700
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:25 
*INFO* f_current_si         : 0.6615943850 
*INFO* f_1_step_si         : 0.6796086800 
*INFO* f_current_price4pm   : 301 
*INFO* f_current_price4pmsi : 454.9615396146 
---- call prediction function shl_pm ---- 11:29:25
     previous_pred_les_level : 321.107989
     previous_pred_les_trend : -11.881186
     f_1_step_pred_les_level  : 422.478333
     f_1_step_pred_les_trend  : 8.408326
     les + misc               : 430.886658
     f_1_step_pred_price_inc  : 292.834313
     f_1_step_si              : 0.679609

<<<< Record No.:  1795 >>>>
2017-06
11:29:26
88700

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:26
in_current_price  : 88700
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:26 
*INFO* f_current_si         : 0.6796086800 
*INFO* f_1_step_si         : 0.7008853550 
*INFO* f_current_price4pm   : 301 
*INFO* f_current_price4pmsi : 442.9019358611 
---- call prediction function shl_pm ---- 11:29:26
     previous_pred_les_level : 422.478333
     previous_pred_les_trend : 8.408326
     f_1_step_pred_les_level  : 440.223818
     f_1_step_pred_les_trend  : 10.081119
     les + misc               : 450.304937
     f_1_step_pred_price_inc  : 315.612136
     f_1_step_si              : 0.700885

<<<< Record No.:  1796 >>>>
2017-06
11:29:27
88700

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:27
in_current_price  : 88700
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:27 
*INFO* f_current_si         : 0.7008853550 
*INFO* f_1_step_si         : 0.7258007710 
*INFO* f_current_price4pm   : 301 
*INFO* f_current_price4pmsi : 429.4568260739 
---- call prediction function shl_pm ---- 11:29:27
     previous_pred_les_level : 440.223818
     previous_pred_les_trend : 10.081119
     f_1_step_pred_les_level  : 434.103718
     f_1_step_pred_les_trend  : 7.178599
     les + misc               : 441.282317
     f_1_step_pred_price_inc  : 320.283046
     f_1_step_si              : 0.725801

<<<< Record No.:  1797 >>>>
2017-06
11:29:28
88700

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:28
in_current_price  : 88700
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:28 
*INFO* f_current_si         : 0.7258007710 
*INFO* f_1_step_si         : 0.7406630210 
*INFO* f_current_price4pm   : 301 
*INFO* f_current_price4pmsi : 414.7143569237 
---- call prediction function shl_pm ---- 11:29:28
     previous_pred_les_level : 434.103718
     previous_pred_les_trend : 7.178599
     f_1_step_pred_les_level  : 420.636161
     f_1_step_pred_les_trend  : 3.479749
     les + misc               : 424.115910
     f_1_step_pred_price_inc  : 314.126971
     f_1_step_si              : 0.740663

<<<< Record No.:  1798 >>>>
2017-06
11:29:29
88700

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:29
in_current_price  : 88700
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:29 
*INFO* f_current_si         : 0.7406630210 
*INFO* f_1_step_si         : 0.7749686950 
*INFO* f_current_price4pm   : 301 
*INFO* f_current_price4pmsi : 406.3926393863 
---- call prediction function shl_pm ---- 11:29:29
     previous_pred_les_level : 420.636161
     previous_pred_les_trend : 3.479749
     f_1_step_pred_les_level  : 410.343027
     f_1_step_pred_les_trend  : 1.012276
     les + misc               : 411.355303
     f_1_step_pred_price_inc  : 318.787482
     f_1_step_si              : 0.774969

<<<< Record No.:  1799 >>>>
2017-06
11:29:30
88800

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:30
in_current_price  : 88800
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:30 
*INFO* f_current_si         : 0.7749686950 
*INFO* f_1_step_si         : 0.7967683450 
*INFO* f_current_price4pm   : 401 
*INFO* f_current_price4pmsi : 517.4402560867 
---- call prediction function shl_pm ---- 11:29:30
     previous_pred_les_level : 410.343027
     previous_pred_les_trend : 1.012276
     f_1_step_pred_les_level  : 493.794696
     f_1_step_pred_les_trend  : 15.781658
     les + misc               : 509.576353
     f_1_step_pred_price_inc  : 406.014308
     f_1_step_si              : 0.796768

<<<< Record No.:  1800 >>>>
2017-06
11:29:31
88800

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:31
in_current_price  : 88800
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:31 
*INFO* f_current_si         : 0.7967683450 
*INFO* f_1_step_si         : 0.8239920950 
*INFO* f_current_price4pm   : 401 
*INFO* f_current_price4pmsi : 503.2830464669 
---- call prediction function shl_pm ---- 11:29:31
     previous_pred_les_level : 493.794696
     previous_pred_les_trend : 15.781658
     f_1_step_pred_les_level  : 504.685779
     f_1_step_pred_les_trend  : 14.905489
     les + misc               : 519.591268
     f_1_step_pred_price_inc  : 428.139097
     f_1_step_si              : 0.823992

<<<< Record No.:  1801 >>>>
2017-06
11:29:32
88800

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:32
in_current_price  : 88800
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:32 
*INFO* f_current_si         : 0.8239920950 
*INFO* f_1_step_si         : 0.8456485560 
*INFO* f_current_price4pm   : 401 
*INFO* f_current_price4pmsi : 486.6551541371 
---- call prediction function shl_pm ---- 11:29:32
     previous_pred_les_level : 504.685779
     previous_pred_les_trend : 14.905489
     f_1_step_pred_les_level  : 493.996373
     f_1_step_pred_les_trend  : 10.320051
     les + misc               : 504.316424
     f_1_step_pred_price_inc  : 426.474456
     f_1_step_si              : 0.845649

<<<< Record No.:  1802 >>>>
2017-06
11:29:33
88800

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:33
in_current_price  : 88800
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:33 
*INFO* f_current_si         : 0.8456485560 
*INFO* f_1_step_si         : 0.8708946860 
*INFO* f_current_price4pm   : 401 
*INFO* f_current_price4pmsi : 474.1922600764 
---- call prediction function shl_pm ---- 11:29:33
     previous_pred_les_level : 493.996373
     previous_pred_les_trend : 10.320051
     f_1_step_pred_les_level  : 480.906716
     f_1_step_pred_les_trend  : 6.126098
     les + misc               : 487.032814
     f_1_step_pred_price_inc  : 424.154290
     f_1_step_si              : 0.870895

<<<< Record No.:  1803 >>>>
2017-06
11:29:34
88800

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:34
in_current_price  : 88800
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:34 
*INFO* f_current_si         : 0.8708946860 
*INFO* f_1_step_si         : 0.9278569940 
*INFO* f_current_price4pm   : 401 
*INFO* f_current_price4pmsi : 460.4460291769 
---- call prediction function shl_pm ---- 11:29:34
     previous_pred_les_level : 480.906716
     previous_pred_les_trend : 6.126098
     f_1_step_pred_les_level  : 466.372029
     f_1_step_pred_les_trend  : 2.424627
     les + misc               : 468.796657
     f_1_step_pred_price_inc  : 434.976257
     f_1_step_si              : 0.927857

<<<< Record No.:  1804 >>>>
2017-06
11:29:35
88800

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:35
in_current_price  : 88800
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:35 
*INFO* f_current_si         : 0.9278569940 
*INFO* f_1_step_si         : 0.9616321100 
*INFO* f_current_price4pm   : 401 
*INFO* f_current_price4pmsi : 432.1786682571 
---- call prediction function shl_pm ---- 11:29:35
     previous_pred_les_level : 466.372029
     previous_pred_les_trend : 2.424627
     f_1_step_pred_les_level  : 440.340550
     f_1_step_pred_les_trend  : -2.673410
     les + misc               : 437.667140
     f_1_step_pred_price_inc  : 420.874776
     f_1_step_si              : 0.961632

<<<< Record No.:  1805 >>>>
2017-06
11:29:36
88800

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:36
in_current_price  : 88800
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:36 
*INFO* f_current_si         : 0.9616321100 
*INFO* f_1_step_si         : 0.9787400280 
*INFO* f_current_price4pm   : 401 
*INFO* f_current_price4pmsi : 416.9993865949 
---- call prediction function shl_pm ---- 11:29:36
     previous_pred_les_level : 440.340550
     previous_pred_les_trend : -2.673410
     f_1_step_pred_les_level  : 421.606078
     f_1_step_pred_les_trend  : -5.550820
     les + misc               : 416.055258
     f_1_step_pred_price_inc  : 407.209935
     f_1_step_si              : 0.978740

<<<< Record No.:  1806 >>>>
2017-06
11:29:37
88800

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:37
in_current_price  : 88800
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:37 
*INFO* f_current_si         : 0.9787400280 
*INFO* f_1_step_si         : 0.9870518520 
*INFO* f_current_price4pm   : 401 
*INFO* f_current_price4pmsi : 409.7104323192 
---- call prediction function shl_pm ---- 11:29:37
     previous_pred_les_level : 421.606078
     previous_pred_les_trend : -5.550820
     f_1_step_pred_les_level  : 411.124648
     f_1_step_pred_les_trend  : -6.434161
     les + misc               : 404.690487
     f_1_step_pred_price_inc  : 399.450495
     f_1_step_si              : 0.987052

<<<< Record No.:  1807 >>>>
2017-06
11:29:38
88800

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:38
in_current_price  : 88800
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:38 
*INFO* f_current_si         : 0.9870518520 
*INFO* f_1_step_si         : 1.0277287330 
*INFO* f_current_price4pm   : 401 
*INFO* f_current_price4pmsi : 406.2603187335 
---- call prediction function shl_pm ---- 11:29:38
     previous_pred_les_level : 411.124648
     previous_pred_les_trend : -6.434161
     f_1_step_pred_les_level  : 405.910415
     f_1_step_pred_les_trend  : -6.215605
     les + misc               : 399.694810
     f_1_step_pred_price_inc  : 410.777840
     f_1_step_si              : 1.027729

<<<< Record No.:  1808 >>>>
2017-06
11:29:39
88800

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:39
in_current_price  : 88800
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:39 
*INFO* f_current_si         : 1.0277287330 
*INFO* f_1_step_si         : 1.0732818240 
*INFO* f_current_price4pm   : 401 
*INFO* f_current_price4pmsi : 390.1807812938 
---- call prediction function shl_pm ---- 11:29:39
     previous_pred_les_level : 405.910415
     previous_pred_les_trend : -6.215605
     f_1_step_pred_les_level  : 392.301389
     f_1_step_pred_les_trend  : -7.540169
     les + misc               : 384.761219
     f_1_step_pred_price_inc  : 412.957223
     f_1_step_si              : 1.073282

<<<< Record No.:  1809 >>>>
2017-06
11:29:40
88800

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:40
in_current_price  : 88800
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:40 
*INFO* f_current_si         : 1.0732818240 
*INFO* f_1_step_si         : 1.1014312080 
*INFO* f_current_price4pm   : 401 
*INFO* f_current_price4pmsi : 373.6204145389 
---- call prediction function shl_pm ---- 11:29:40
     previous_pred_les_level : 392.301389
     previous_pred_les_trend : -7.540169
     f_1_step_pred_les_level  : 376.103618
     f_1_step_pred_les_trend  : -9.091217
     les + misc               : 367.012402
     f_1_step_pred_price_inc  : 404.238913
     f_1_step_si              : 1.101431

<<<< Record No.:  1810 >>>>
2017-06
11:29:41
88900

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:41
in_current_price  : 88900
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:41 
*INFO* f_current_si         : 1.1014312080 
*INFO* f_1_step_si         : 1.1636423890 
*INFO* f_current_price4pm   : 501 
*INFO* f_current_price4pmsi : 454.8627243909 
---- call prediction function shl_pm ---- 11:29:41
     previous_pred_les_level : 376.103618
     previous_pred_les_trend : -9.091217
     f_1_step_pred_les_level  : 435.281530
     f_1_step_pred_les_trend  : 3.139499
     les + misc               : 438.421029
     f_1_step_pred_price_inc  : 510.165294
     f_1_step_si              : 1.163642

<<<< Record No.:  1811 >>>>
2017-06
11:29:42
88900

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:42
in_current_price  : 88900
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:42 
*INFO* f_current_si         : 1.1636423890 
*INFO* f_1_step_si         : 1.2770115610 
*INFO* f_current_price4pm   : 501 
*INFO* f_current_price4pmsi : 430.5446456196 
---- call prediction function shl_pm ---- 11:29:42
     previous_pred_les_level : 435.281530
     previous_pred_les_trend : 3.139499
     f_1_step_pred_les_level  : 432.300234
     f_1_step_pred_les_trend  : 2.042932
     les + misc               : 434.343166
     f_1_step_pred_price_inc  : 554.661244
     f_1_step_si              : 1.277012

<<<< Record No.:  1812 >>>>
2017-06
11:29:43
89000

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:43
in_current_price  : 89000
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:43 
*INFO* f_current_si         : 1.2770115610 
*INFO* f_1_step_si         : 1.3885120710 
*INFO* f_current_price4pm   : 601 
*INFO* f_current_price4pmsi : 470.6300384073 
---- call prediction function shl_pm ---- 11:29:43
     previous_pred_les_level : 432.300234
     previous_pred_les_trend : 2.042932
     f_1_step_pred_les_level  : 462.541960
     f_1_step_pred_les_trend  : 7.094870
     les + misc               : 469.636830
     f_1_step_pred_price_inc  : 652.096408
     f_1_step_si              : 1.388512

<<<< Record No.:  1813 >>>>
2017-06
11:29:44
89000

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:44
in_current_price  : 89000
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:44 
*INFO* f_current_si         : 1.3885120710 
*INFO* f_1_step_si         : 1.4408790780 
*INFO* f_current_price4pm   : 601 
*INFO* f_current_price4pmsi : 432.8374326391 
---- call prediction function shl_pm ---- 11:29:44
     previous_pred_les_level : 462.541960
     previous_pred_les_trend : 7.094870
     f_1_step_pred_les_level  : 441.039749
     f_1_step_pred_les_trend  : 1.971577
     les + misc               : 443.011326
     f_1_step_pred_price_inc  : 638.325751
     f_1_step_si              : 1.440879

<<<< Record No.:  1814 >>>>
2017-06
11:29:45
89100

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:45
in_current_price  : 89100
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:45 
*INFO* f_current_si         : 1.4408790780 
*INFO* f_1_step_si         : 1.5694557710 
*INFO* f_current_price4pm   : 701 
*INFO* f_current_price4pmsi : 486.5085562718 
---- call prediction function shl_pm ---- 11:29:45
     previous_pred_les_level : 441.039749
     previous_pred_les_trend : 1.971577
     f_1_step_pred_les_level  : 476.813342
     f_1_step_pred_les_trend  : 8.027357
     les + misc               : 484.840699
     f_1_step_pred_price_inc  : 760.936033
     f_1_step_si              : 1.569456

<<<< Record No.:  1815 >>>>
2017-06
11:29:46
89100

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:46
in_current_price  : 89100
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:46 
*INFO* f_current_si         : 1.5694557710 
*INFO* f_1_step_si         : 1.6448651010 
*INFO* f_current_price4pm   : 701 
*INFO* f_current_price4pmsi : 446.6516438073 
---- call prediction function shl_pm ---- 11:29:46
     previous_pred_les_level : 476.813342
     previous_pred_les_trend : 8.027357
     f_1_step_pred_les_level  : 455.163705
     f_1_step_pred_les_trend  : 2.710593
     les + misc               : 457.874298
     f_1_step_pred_price_inc  : 753.141453
     f_1_step_si              : 1.644865

<<<< Record No.:  1816 >>>>
2017-06
11:29:47
89100

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:47
in_current_price  : 89100
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:47 
*INFO* f_current_si         : 1.6448651010 
*INFO* f_1_step_si         : 1.7484231600 
*INFO* f_current_price4pm   : 701 
*INFO* f_current_price4pmsi : 426.1747662917 
---- call prediction function shl_pm ---- 11:29:47
     previous_pred_les_level : 455.163705
     previous_pred_les_trend : 2.710593
     f_1_step_pred_les_level  : 433.240360
     f_1_step_pred_les_trend  : -1.702686
     les + misc               : 431.537674
     f_1_step_pred_price_inc  : 754.510464
     f_1_step_si              : 1.748423

<<<< Record No.:  1817 >>>>
2017-06
11:29:48
89100

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:48
in_current_price  : 89100
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:48 
*INFO* f_current_si         : 1.7484231600 
*INFO* f_1_step_si         : 1.7903136450 
*INFO* f_current_price4pm   : 701 
*INFO* f_current_price4pmsi : 400.9326895441 
---- call prediction function shl_pm ---- 11:29:48
     previous_pred_les_level : 433.240360
     previous_pred_les_trend : -1.702686
     f_1_step_pred_les_level  : 407.754317
     f_1_step_pred_les_trend  : -5.963580
     les + misc               : 401.790737
     f_1_step_pred_price_inc  : 719.331439
     f_1_step_si              : 1.790314

<<<< Record No.:  1818 >>>>
2017-06
11:29:49
89100

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:49
in_current_price  : 89100
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:49 
*INFO* f_current_si         : 1.7903136450 
*INFO* f_1_step_si         : 1.9309782790 
*INFO* f_current_price4pm   : 701 
*INFO* f_current_price4pmsi : 391.5515038149 
---- call prediction function shl_pm ---- 11:29:49
     previous_pred_les_level : 407.754317
     previous_pred_les_trend : -5.963580
     f_1_step_pred_les_level  : 393.833754
     f_1_step_pred_les_trend  : -7.389108
     les + misc               : 386.444646
     f_1_step_pred_price_inc  : 746.216217
     f_1_step_si              : 1.930978

In [23]:
# Upon receiving 11:29:50 second price, to predict till 11:30:00 <- ten-step forward price forecasting

for i in range(shl_global_parm_ccyy_mm_offset+50, shl_global_parm_ccyy_mm_offset+51): # use July 2015 data as simulatino
    print('\n<<<< Record No.: %5d >>>>' % i)
    print(shl_data_history_ts_process['ccyy-mm'][i]) # format: ccyy-mm
    print(shl_data_history_ts_process['time'][i]) # format: hh:mm:ss
    print(shl_data_history_ts_process['bid-price'][i]) # format: integer
    shl_predict_price_k_step(shl_data_history_ts_process['time'][i], shl_data_history_ts_process['bid-price'][i],10) # <- ten-step forward price forecasting


<<<< Record No.:  1819 >>>>
2017-06
11:29:50
89100

==>> Forecasting next   1 second/step... 
     procesing current second/step k :  1

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:50
in_current_price  : 89100
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:50 
*INFO* f_current_si         : 1.9309782790 
*INFO* f_1_step_si         : 2.0018259430 
*INFO* f_current_price4pm   : 701 
*INFO* f_current_price4pmsi : 363.0284232731 
---- call prediction function shl_pm ---- 11:29:50
*INFO* sec50_error    : 45.216217
*INFO* sec46_49_error : 183.919389
*INFO* shl_global_parm_short_weight_misc  : 45.827121
*INFO* shl_global_parm_short_weight_ratio : 1
     previous_pred_les_level : 393.833754
     previous_pred_les_trend : -7.389108
     f_1_step_pred_les_level  : 368.247728
     f_1_step_pred_les_trend  : -10.649166
     les + misc               : 358.289399
     f_1_step_pred_price_inc  : 717.233014
     f_1_step_si              : 2.001826

==>> Forecasting next   2 second/step... 
     procesing current second/step k :  2

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:51
in_current_price  : 89116
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:51 
*INFO* f_current_si         : 2.0018259430 
*INFO* f_1_step_si         : 2.0608409580 
*INFO* f_current_price4pm   : 717 
*INFO* f_current_price4pmsi : 358.2893988020 
---- call prediction function shl_pm ---- 11:29:51
*INFO* shl_global_parm_short_weight_ratio : 2
     previous_pred_les_level : 368.247728
     previous_pred_les_trend : -10.649166
     f_1_step_pred_les_level  : 358.135416
     f_1_step_pred_les_trend  : -10.552987
     les + misc               : 348.964104
     f_1_step_pred_price_inc  : 719.159518
     f_1_step_si              : 2.060841

==>> Forecasting next   3 second/step... 
     procesing current second/step k :  3

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:52
in_current_price  : 89118
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:52 
*INFO* f_current_si         : 2.0608409580 
*INFO* f_1_step_si         : 2.1669312840 
*INFO* f_current_price4pm   : 719 
*INFO* f_current_price4pmsi : 348.9641040323 
---- call prediction function shl_pm ---- 11:29:52
*INFO* shl_global_parm_short_weight_ratio : 3
     previous_pred_les_level : 358.135416
     previous_pred_les_trend : -10.552987
     f_1_step_pred_les_level  : 348.656139
     f_1_step_pred_les_trend  : -10.360627
     les + misc               : 340.368024
     f_1_step_pred_price_inc  : 737.554118
     f_1_step_si              : 2.166931

==>> Forecasting next   4 second/step... 
     procesing current second/step k :  4

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:53
in_current_price  : 89136
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:53 
*INFO* f_current_si         : 2.1669312840 
*INFO* f_1_step_si         : 2.2854831720 
*INFO* f_current_price4pm   : 737 
*INFO* f_current_price4pmsi : 340.3680236019 
---- call prediction function shl_pm ---- 11:29:53
*INFO* shl_global_parm_short_weight_ratio : 4
     previous_pred_les_level : 348.656139
     previous_pred_les_trend : -10.360627
     f_1_step_pred_les_level  : 339.906076
     f_1_step_pred_les_trend  : -10.072087
     les + misc               : 332.597337
     f_1_step_pred_price_inc  : 760.145618
     f_1_step_si              : 2.285483

==>> Forecasting next   5 second/step... 
     procesing current second/step k :  5

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:54
in_current_price  : 89159
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:54 
*INFO* f_current_si         : 2.2854831720 
*INFO* f_1_step_si         : 2.4051380830 
*INFO* f_current_price4pm   : 760 
*INFO* f_current_price4pmsi : 332.5973373828 
---- call prediction function shl_pm ---- 11:29:54
*INFO* shl_global_parm_short_weight_ratio : 5
     previous_pred_les_level : 339.906076
     previous_pred_les_trend : -10.072087
     f_1_step_pred_les_level  : 331.981407
     f_1_step_pred_les_trend  : -9.687368
     les + misc               : 325.748225
     f_1_step_pred_price_inc  : 783.469462
     f_1_step_si              : 2.405138

==>> Forecasting next   6 second/step... 
     procesing current second/step k :  6

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:55
in_current_price  : 89182
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:55 
*INFO* f_current_si         : 2.4051380830 
*INFO* f_1_step_si         : 2.5395496220 
*INFO* f_current_price4pm   : 783 
*INFO* f_current_price4pmsi : 325.7482252467 
---- call prediction function shl_pm ---- 11:29:55
*INFO* shl_global_parm_short_weight_ratio : 6
     previous_pred_les_level : 331.981407
     previous_pred_les_trend : -9.687368
     f_1_step_pred_les_level  : 324.978313
     f_1_step_pred_les_trend  : -9.206468
     les + misc               : 319.916867
     f_1_step_pred_price_inc  : 812.444759
     f_1_step_si              : 2.539550

==>> Forecasting next   7 second/step... 
     procesing current second/step k :  7

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:56
in_current_price  : 89211
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:56 
*INFO* f_current_si         : 2.5395496220 
*INFO* f_1_step_si         : 2.6922988440 
*INFO* f_current_price4pm   : 812 
*INFO* f_current_price4pmsi : 319.9168670655 
---- call prediction function shl_pm ---- 11:29:56
*INFO* shl_global_parm_short_weight_ratio : 7
     previous_pred_les_level : 324.978313
     previous_pred_les_trend : -9.206468
     f_1_step_pred_les_level  : 318.992972
     f_1_step_pred_les_trend  : -8.629389
     les + misc               : 315.199443
     f_1_step_pred_price_inc  : 848.611095
     f_1_step_si              : 2.692299

==>> Forecasting next   8 second/step... 
     procesing current second/step k :  8

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:57
in_current_price  : 89247
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:57 
*INFO* f_current_si         : 2.6922988440 
*INFO* f_1_step_si         : 2.7559213250 
*INFO* f_current_price4pm   : 848 
*INFO* f_current_price4pmsi : 315.1994427111 
---- call prediction function shl_pm ---- 11:29:57
*INFO* shl_global_parm_short_weight_ratio : 8
     previous_pred_les_level : 318.992972
     previous_pred_les_trend : -8.629389
     f_1_step_pred_les_level  : 314.121565
     f_1_step_pred_les_trend  : -7.956130
     les + misc               : 311.692132
     f_1_step_pred_price_inc  : 858.998994
     f_1_step_si              : 2.755921

==>> Forecasting next   9 second/step... 
     procesing current second/step k :  9

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:58
in_current_price  : 89257
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:58 
*INFO* f_current_si         : 2.7559213250 
*INFO* f_1_step_si         : 2.9170470950 
*INFO* f_current_price4pm   : 858 
*INFO* f_current_price4pmsi : 311.6921320554 
---- call prediction function shl_pm ---- 11:29:58
*INFO* shl_global_parm_short_weight_ratio : 9
     previous_pred_les_level : 314.121565
     previous_pred_les_trend : -7.956130
     f_1_step_pred_les_level  : 310.460272
     f_1_step_pred_les_trend  : -7.186691
     les + misc               : 309.491115
     f_1_step_pred_price_inc  : 902.800158
     f_1_step_si              : 2.917047

==>> Forecasting next  10 second/step... 
     procesing current second/step k :  10

+-----------------------------------------------+
| shl_predict_price()                           |
+-----------------------------------------------+

current_ccyy_mm   : 2017-06
in_current_time   : 11:29:59
in_current_price  : 89301
-------------------------------------------------
*INFO* f_current_datetime   : 2017-06 11:29:59 
*INFO* f_current_si         : 2.9170470950 
*INFO* f_1_step_si         : 3.0648617500 
*INFO* f_current_price4pm   : 902 
*INFO* f_current_price4pmsi : 309.4911149701 
---- call prediction function shl_pm ---- 11:29:59
*INFO* shl_global_parm_short_weight_ratio : 10
     previous_pred_les_level : 310.460272
     previous_pred_les_trend : -7.186691
     f_1_step_pred_les_level  : 308.105272
     f_1_step_pred_les_trend  : -6.321072
     les + misc               : 308.692571
     f_1_step_pred_price_inc  : 946.100054
     f_1_step_si              : 3.064862

In [ ]:
# shl_data_pm_1_step.tail(11)

In [ ]:
# shl_data_pm_k_step.tail(11)

In [ ]:

MISC - Validation


In [24]:
%matplotlib inline
import matplotlib.pyplot as plt

In [25]:
shl_data_pm_k_step_test = shl_data_pm_k_step.copy()

shl_data_pm_k_step_test.index = shl_data_pm_k_step_test.index + 1

shl_data_pm_k_step_test


Out[25]:
ccyy-mm f_1_step_pred_adj_misc f_1_step_pred_les f_1_step_pred_les_level f_1_step_pred_les_trend f_1_step_pred_price f_1_step_pred_price_inc f_1_step_pred_price_rounded f_1_step_pred_set_price_rounded f_1_step_si f_1_step_time f_current_bid f_current_datetime f_current_price4pm f_current_price4pmsi f_current_si
1 2017-06 0.000000 419.777744 419.777744 0.000000 88405.238354 6.238354 88400.0 88700.0 0.014861 11:29:01 88400.000000 2017-06 11:29:00 1.000000 419.777744 0.002382
2 2017-06 0.000000 6262.747481 5374.997905 887.749577 88547.859589 148.859589 88500.0 88800.0 0.023769 11:29:02 88500.000000 2017-06 11:29:01 101.000000 6796.271794 0.014861
3 2017-06 0.000000 5305.444549 4698.022384 607.422165 88563.168196 164.168196 88600.0 88900.0 0.030943 11:29:03 88500.000000 2017-06 11:29:02 101.000000 4249.222361 0.023769
4 2017-06 0.000000 4042.258206 3719.046295 323.211911 88557.505465 158.505465 88600.0 88900.0 0.039212 11:29:04 88500.000000 2017-06 11:29:03 101.000000 3264.029899 0.030943
5 2017-06 0.000000 3021.651634 2902.612317 119.039317 88516.146201 117.146201 88500.0 88800.0 0.038769 11:29:05 88500.000000 2017-06 11:29:04 101.000000 2575.735026 0.039212
6 2017-06 0.000000 2759.064728 2698.007658 61.057069 88607.954881 208.954881 88600.0 88900.0 0.075734 11:29:06 88500.000000 2017-06 11:29:05 101.000000 2605.178941 0.038769
7 2017-06 0.000000 1513.940893 1651.337965 -137.397073 88541.609370 142.609370 88500.0 88800.0 0.094197 11:29:07 88500.000000 2017-06 11:29:06 101.000000 1333.615831 0.075734
8 2017-06 0.000000 971.778144 1170.673149 -198.895005 88528.611007 129.611007 88500.0 88800.0 0.133375 11:29:08 88500.000000 2017-06 11:29:07 101.000000 1072.215873 0.094197
9 2017-06 0.000000 576.316385 805.076692 -228.760306 88516.674433 117.674433 88500.0 88800.0 0.204184 11:29:09 88500.000000 2017-06 11:29:08 101.000000 757.262787 0.133375
10 2017-06 0.000000 272.725070 512.854800 -240.129730 88462.318411 63.318411 88500.0 88800.0 0.232169 11:29:10 88500.000000 2017-06 11:29:09 101.000000 494.652522 0.204184
11 2017-06 0.000000 181.317588 398.851255 -217.533667 88452.417157 53.417157 88500.0 88800.0 0.294605 11:29:11 88500.000000 2017-06 11:29:10 101.000000 435.027216 0.232169
12 2017-06 0.000000 111.783758 306.831121 -195.047363 88437.997503 38.997503 88400.0 88700.0 0.348866 11:29:12 88500.000000 2017-06 11:29:11 101.000000 342.831360 0.294605
13 2017-06 0.000000 79.592023 249.895973 -170.303950 88427.425965 28.425965 88400.0 88700.0 0.357146 11:29:13 88500.000000 2017-06 11:29:12 101.000000 289.509810 0.348866
14 2017-06 0.000000 95.491332 237.504554 -142.013222 88435.049903 36.049903 88400.0 88700.0 0.377520 11:29:14 88500.000000 2017-06 11:29:13 101.000000 282.797588 0.357146
15 2017-06 0.000000 111.127150 229.188020 -118.060870 88444.483384 45.483384 88400.0 88700.0 0.409291 11:29:15 88500.000000 2017-06 11:29:14 101.000000 267.535380 0.377520
16 2017-06 0.000000 117.357961 216.534618 -99.176657 88448.368372 49.368372 88400.0 88700.0 0.420665 11:29:16 88500.000000 2017-06 11:29:15 101.000000 246.767963 0.409291
17 2017-06 0.000000 130.649892 212.738673 -82.088781 88459.602574 60.602574 88500.0 88800.0 0.463855 11:29:17 88500.000000 2017-06 11:29:16 101.000000 240.096109 0.420665
18 2017-06 0.000000 128.364872 198.328696 -69.963824 88462.561892 63.561892 88500.0 88800.0 0.495166 11:29:18 88500.000000 2017-06 11:29:17 101.000000 217.740571 0.463855
19 2017-06 0.000000 127.682174 187.119795 -59.437620 88463.870322 64.870322 88500.0 88800.0 0.508061 11:29:19 88500.000000 2017-06 11:29:18 101.000000 203.972091 0.495166
20 2017-06 0.000000 313.765592 335.900059 -22.134467 88565.799468 166.799468 88600.0 88900.0 0.531605 11:29:20 88600.000000 2017-06 11:29:19 201.000000 395.621854 0.508061
21 2017-06 0.000000 350.582672 363.760356 -13.177684 88599.691752 200.691752 88600.0 88900.0 0.572452 11:29:21 88600.000000 2017-06 11:29:20 201.000000 378.100032 0.531605
22 2017-06 0.000000 337.898403 351.001120 -13.102717 88596.458450 197.458450 88600.0 88900.0 0.584372 11:29:22 88600.000000 2017-06 11:29:21 201.000000 351.121141 0.572452
23 2017-06 0.000000 330.349042 342.608012 -12.258970 88596.103469 197.103469 88600.0 88900.0 0.596652 11:29:23 88600.000000 2017-06 11:29:22 201.000000 343.958838 0.584372
24 2017-06 0.000000 324.074306 335.424063 -11.349757 88602.395707 203.395707 88600.0 88900.0 0.627621 11:29:24 88600.000000 2017-06 11:29:23 201.000000 336.879699 0.596652
25 2017-06 0.000000 309.226802 321.107989 -11.881186 88603.582716 204.582716 88600.0 88900.0 0.661594 11:29:25 88600.000000 2017-06 11:29:24 201.000000 320.257179 0.627621
26 2017-06 0.000000 430.886658 422.478333 8.408326 88691.834313 292.834313 88700.0 89000.0 0.679609 11:29:26 88700.000000 2017-06 11:29:25 301.000000 454.961540 0.661594
27 2017-06 0.000000 450.304937 440.223818 10.081119 88714.612136 315.612136 88700.0 89000.0 0.700885 11:29:27 88700.000000 2017-06 11:29:26 301.000000 442.901936 0.679609
28 2017-06 0.000000 441.282317 434.103718 7.178599 88719.283046 320.283046 88700.0 89000.0 0.725801 11:29:28 88700.000000 2017-06 11:29:27 301.000000 429.456826 0.700885
29 2017-06 0.000000 424.115910 420.636161 3.479749 88713.126971 314.126971 88700.0 89000.0 0.740663 11:29:29 88700.000000 2017-06 11:29:28 301.000000 414.714357 0.725801
30 2017-06 0.000000 411.355303 410.343027 1.012276 88717.787482 318.787482 88700.0 89000.0 0.774969 11:29:30 88700.000000 2017-06 11:29:29 301.000000 406.392639 0.740663
31 2017-06 0.000000 509.576353 493.794696 15.781658 88805.014308 406.014308 88800.0 89100.0 0.796768 11:29:31 88800.000000 2017-06 11:29:30 401.000000 517.440256 0.774969
32 2017-06 0.000000 519.591268 504.685779 14.905489 88827.139097 428.139097 88800.0 89100.0 0.823992 11:29:32 88800.000000 2017-06 11:29:31 401.000000 503.283046 0.796768
33 2017-06 0.000000 504.316424 493.996373 10.320051 88825.474456 426.474456 88800.0 89100.0 0.845649 11:29:33 88800.000000 2017-06 11:29:32 401.000000 486.655154 0.823992
34 2017-06 0.000000 487.032814 480.906716 6.126098 88823.154290 424.154290 88800.0 89100.0 0.870895 11:29:34 88800.000000 2017-06 11:29:33 401.000000 474.192260 0.845649
35 2017-06 0.000000 468.796657 466.372029 2.424627 88833.976257 434.976257 88800.0 89100.0 0.927857 11:29:35 88800.000000 2017-06 11:29:34 401.000000 460.446029 0.870895
36 2017-06 0.000000 437.667140 440.340550 -2.673410 88819.874776 420.874776 88800.0 89100.0 0.961632 11:29:36 88800.000000 2017-06 11:29:35 401.000000 432.178668 0.927857
37 2017-06 0.000000 416.055258 421.606078 -5.550820 88806.209935 407.209935 88800.0 89100.0 0.978740 11:29:37 88800.000000 2017-06 11:29:36 401.000000 416.999387 0.961632
38 2017-06 0.000000 404.690487 411.124648 -6.434161 88798.450495 399.450495 88800.0 89100.0 0.987052 11:29:38 88800.000000 2017-06 11:29:37 401.000000 409.710432 0.978740
39 2017-06 0.000000 399.694810 405.910415 -6.215605 88809.777840 410.777840 88800.0 89100.0 1.027729 11:29:39 88800.000000 2017-06 11:29:38 401.000000 406.260319 0.987052
40 2017-06 0.000000 384.761219 392.301389 -7.540169 88811.957223 412.957223 88800.0 89100.0 1.073282 11:29:40 88800.000000 2017-06 11:29:39 401.000000 390.180781 1.027729
41 2017-06 0.000000 367.012402 376.103618 -9.091217 88803.238913 404.238913 88800.0 89100.0 1.101431 11:29:41 88800.000000 2017-06 11:29:40 401.000000 373.620415 1.073282
42 2017-06 0.000000 438.421029 435.281530 3.139499 88909.165294 510.165294 88900.0 89200.0 1.163642 11:29:42 88900.000000 2017-06 11:29:41 501.000000 454.862724 1.101431
43 2017-06 0.000000 434.343166 432.300234 2.042932 88953.661244 554.661244 89000.0 89300.0 1.277012 11:29:43 88900.000000 2017-06 11:29:42 501.000000 430.544646 1.163642
44 2017-06 0.000000 469.636830 462.541960 7.094870 89051.096408 652.096408 89100.0 89400.0 1.388512 11:29:44 89000.000000 2017-06 11:29:43 601.000000 470.630038 1.277012
45 2017-06 0.000000 443.011326 441.039749 1.971577 89037.325751 638.325751 89000.0 89300.0 1.440879 11:29:45 89000.000000 2017-06 11:29:44 601.000000 432.837433 1.388512
46 2017-06 0.000000 484.840699 476.813342 8.027357 89159.936033 760.936033 89200.0 89500.0 1.569456 11:29:46 89100.000000 2017-06 11:29:45 701.000000 486.508556 1.440879
47 2017-06 0.000000 457.874298 455.163705 2.710593 89152.141453 753.141453 89200.0 89500.0 1.644865 11:29:47 89100.000000 2017-06 11:29:46 701.000000 446.651644 1.569456
48 2017-06 0.000000 431.537674 433.240360 -1.702686 89153.510464 754.510464 89200.0 89500.0 1.748423 11:29:48 89100.000000 2017-06 11:29:47 701.000000 426.174766 1.644865
49 2017-06 0.000000 401.790737 407.754317 -5.963580 89118.331439 719.331439 89100.0 89400.0 1.790314 11:29:49 89100.000000 2017-06 11:29:48 701.000000 400.932690 1.748423
50 2017-06 0.000000 386.444646 393.833754 -7.389108 89145.216217 746.216217 89100.0 89400.0 1.930978 11:29:50 89100.000000 2017-06 11:29:49 701.000000 391.551504 1.790314
51 2017-06 0.690837 357.598562 368.247728 -10.649166 89116.233014 717.233014 89100.0 89400.0 2.001826 11:29:51 89100.000000 2017-06 11:29:50 701.000000 363.028423 1.930978
52 2017-06 1.381674 347.582430 358.135416 -10.552987 89118.159518 719.159518 89100.0 89400.0 2.060841 11:29:52 89116.233014 2017-06 11:29:51 717.233014 358.289399 2.001826
53 2017-06 2.072511 338.295512 348.656139 -10.360627 89136.554118 737.554118 89100.0 89400.0 2.166931 11:29:53 89118.159518 2017-06 11:29:52 719.159518 348.964104 2.060841
54 2017-06 2.763349 329.833989 339.906076 -10.072087 89159.145618 760.145618 89200.0 89500.0 2.285483 11:29:54 89136.554118 2017-06 11:29:53 737.554118 340.368024 2.166931
55 2017-06 3.454186 322.294040 331.981407 -9.687368 89182.469462 783.469462 89200.0 89500.0 2.405138 11:29:55 89159.145618 2017-06 11:29:54 760.145618 332.597337 2.285483
56 2017-06 4.145023 315.771844 324.978313 -9.206468 89211.444759 812.444759 89200.0 89500.0 2.539550 11:29:56 89182.469462 2017-06 11:29:55 783.469462 325.748225 2.405138
57 2017-06 4.835860 310.363583 318.992972 -8.629389 89247.611095 848.611095 89200.0 89500.0 2.692299 11:29:57 89211.444759 2017-06 11:29:56 812.444759 319.916867 2.539550
58 2017-06 5.526697 306.165435 314.121565 -7.956130 89257.998994 858.998994 89300.0 89600.0 2.755921 11:29:58 89247.611095 2017-06 11:29:57 848.611095 315.199443 2.692299
59 2017-06 6.217534 303.273581 310.460272 -7.186691 89301.800158 902.800158 89300.0 89600.0 2.917047 11:29:59 89257.998994 2017-06 11:29:58 858.998994 311.692132 2.755921
60 2017-06 6.908371 301.784200 308.105272 -6.321072 89345.100054 946.100054 89300.0 89600.0 3.064862 11:30:00 89301.800158 2017-06 11:29:59 902.800158 309.491115 2.917047

In [26]:
# bid is predicted bid-price from shl_pm
plt.figure(figsize=(12,6))
plt.plot(shl_data_pm_k_step['f_current_bid'])
# plt.plot(shl_data_pm_1_step_k_step['f_1_step_pred_price'].shift(1))
plt.plot(shl_data_pm_k_step_test['f_1_step_pred_price'])

# bid is actual bid-price from raw dataset
shl_data_actual_bid = shl_data_history_ts_process[shl_global_parm_ccyy_mm_offset:shl_global_parm_ccyy_mm_offset+61].copy()
shl_data_actual_bid.reset_index(inplace=True)
plt.figure(figsize=(12,6))
plt.plot(shl_data_actual_bid['bid-price'])
plt.plot(shl_data_pm_k_step_test['f_1_step_pred_price'])


Out[26]:
[<matplotlib.lines.Line2D at 0x7fd53769e7b8>]

In [ ]:


In [27]:
# pd.concat([shl_data_actual_bid['bid-price'], shl_data_pm_k_step_test['f_1_step_pred_price'], shl_data_pm_k_step_test['f_1_step_pred_price'] - shl_data_actual_bid['bid-price']], axis=1, join='inner')
pd.concat([shl_data_actual_bid['bid-price'].tail(11), shl_data_pm_k_step_test['f_1_step_pred_price'].tail(11), shl_data_pm_k_step_test['f_1_step_pred_price'].tail(11) - shl_data_actual_bid['bid-price'].tail(11)], axis=1, join='inner')


Out[27]:
bid-price f_1_step_pred_price 0
50 89100 89145.216217 45.216217
51 89100 89116.233014 16.233014
52 89100 89118.159518 18.159518
53 89200 89136.554118 -63.445882
54 89200 89159.145618 -40.854382
55 89200 89182.469462 -17.530538
56 89200 89211.444759 11.444759
57 89300 89247.611095 -52.388905
58 89300 89257.998994 -42.001006
59 89300 89301.800158 1.800158
60 89400 89345.100054 -54.899946

In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


The End